<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Bolt SDK Readme</title>
</head>

<body>
<img src="docs/html/bolt.jpg" alt="bolt.jpg"/>
<h1>Welcome to the Bolt SDK Preview release</h1>

<h1><a class="anchor" id="intro_sec"></a>Introduction</h1>
<p>Bolt is a C++ template library optimized for GPUs. Bolt provides high-performance library 
implementations for common algorithms such as scan, reduce, transform, and sort. The Bolt 
interface resembles the C++ Standard Template Library (STL) so that developers who are familiar 
with STL will recognize many of the Bolt APIs and customization techniques. In some cases, 
developers can benefit from GPU acceleration simply by changing the namespace for STL algorithm 
calls from "std" to "bolt::cl".</p>
<p>C++ templates can be used to customize the algorithms with new types (for example, 
the Bolt <code>sort</code> can operate on ints, float, or any custom type defined by the user). 
Additionally, Bolt allows users to customize the template routines using function objects (functors) 
written in OpenCL - for example, to provide a custom comparison operation for <code>sort</code>, 
 or a custom reduction operation.</p>
<p>The Bolt interfaces can directly interface with host memory structure such as 
<code>std::vector</code> or host arrays (ie <code>float*</code>). On today's GPU systems the host 
memory will be automatically mapped or copied to the GPU. On future systems which support the 
Heterogeneous System Architecture, the GPU will directly access the host data structures. Bolt also 
provides a bolt::cl::device_vector container which can be used to allocate and manage device-local memory 
for higher performance on discrete GPU systems. Bolt APIs can accept both STL container or device_vector
iterators.</p>

<p>Further documentation can be found with either 
<p> <a href="docs/html/index.html">HTML documentation</a> or </p>
<p> <a href="docs/chm/Bolt.chm">Compiled HTML documentation</a></p>

<h2><a class="anchor" id="license"></a>License</h2>
<p>Bolt uses the liberal <a href="http://opensource.org/licenses/apache2.0.php">Apache License, Version 2.0</a></p>

<h2><a class="anchor" id="examples"></a>Examples</h2>
<p>Download <a href="http://cmake.org/">cmake</a> to generate your personal build files and start stepping 
through the example programs</p>

</body>